home *** CD-ROM | disk | FTP | other *** search
- '
- ' FarPoint Grid declarations
- '
- 'function prototypes
- Declare Function SaveTabFile Lib "FPGRID10.VBX" (SS As Control, ByVal FileName As String) As Integer
- Declare Function SetCellDirtyFlag Lib "FPGRID10.VBX" (SS As Control, ByVal Col As Long, ByVal Row As Long, ByVal Dirty As Integer) As Integer
- Declare Function GetCellDirtyFlag Lib "FPGRID10.VBX" (SS As Control, ByVal Col As Long, ByVal Row As Long) As Integer
- Declare Function fpGetText Lib "FPGRID10.VBX" (SS As Control, ByVal Col As Long, ByVal Row As Long, Var As Variant) As Integer
- Declare Sub fpSetText Lib "FPGRID10.VBX" (SS As Control, ByVal Col As Long, ByVal Row As Long, lpVar As Variant)
- Declare Function GetDataConnectHandle Lib "FPGRID10.VBX" (SS As Control)
- Declare Function GetDataSelectHandle Lib "FPGRID10.VBX" (SS As Control)
-
- 'spreadsheet actions
- Global Const SS_ACTION_ACTIVE_CELL = 0
- Global Const SS_ACTION_SELECT_BLOCK = 2
- Global Const SS_ACTION_CLEAR = 3
- Global Const SS_ACTION_DELETE_COL = 4
- Global Const SS_ACTION_DELETE_ROW = 5
- Global Const SS_ACTION_INSERT_COL = 6
- Global Const SS_ACTION_INSERT_ROW = 7
- Global Const SS_ACTION_CLEAR_TEXT = 12
- Global Const SS_ACTION_DESELECT_BLOCK = 14
- Global Const SS_ACTION_DSAVE = 15
- Global Const SS_ACTION_RESET = 28
- Global Const SS_ACTION_VMODE_REFRESH = 30
- Global Const SS_ACTION_REFRESH_BOUND = 31
-
- 'SelectBlockOptions
- Global Const SS_SELBLOCKOPT_COLS = 1
- Global Const SS_SELBLOCKOPT_ROWS = 2
- Global Const SS_SELBLOCKOPT_BLOCKS = 4
- Global Const SS_SELBLOCKOPT_ALL = 8
-
- 'DAutoSize settings
- 'Global Const SS_AUTOSIZE_NONE = 0
- Global Const SS_AUTOSIZE_MAX_COL_WIDTH = 1
- Global Const SS_AUTOSIZE_BEST_GUESS = 2
-
- 'cell type
- Global Const SS_CELL_TYPE_DATE = 0
- Global Const SS_CELL_TYPE_EDIT = 1
- Global Const SS_CELL_TYPE_FLOAT = 2
- Global Const SS_CELL_TYPE_INTEGER = 3
- Global Const SS_CELL_TYPE_PIC = 4
- Global Const SS_CELL_TYPE_STATIC_TEXT = 5
- Global Const SS_CELL_TYPE_TIME = 6
- Global Const SS_CELL_TYPE_BUTTON = 7
- Global Const SS_CELL_TYPE_COMBOBOX = 8
- Global Const SS_CELL_TYPE_PICTURE = 9
- Global Const SS_CELL_TYPE_CHECKBOX = 10
-
- 'Bound. auto col sizing
- Global Const SS_BOUND_COL_NO_SIZE = 0
- Global Const SS_BOUND_COL_MAX_SIZE = 1
- Global Const SS_BOUND_COL_SMART_SIZE = 2
-
- 'user resize row and columns
- Global Const SS_USER_RESIZE_COL = 1
- Global Const SS_USER_RESIZE_ROW = 2
-
- 'scroll bar
- Global Const SS_SCROLLBAR_NONE = 0
- Global Const SS_SCROLLBAR_H_ONLY = 1
- Global Const SS_SCROLLBAR_V_ONLY = 2
- Global Const SS_SCROLLBAR_BOTH = 3
-
- 'button types
- Global Const SS_CELL_BUTTON_NORMAL = 0
- Global Const SS_CELL_BUTTON_TWO_STATE = 1
-
- 'button picture align
- Global Const SS_CELL_BUTTON_ALIGN_BOTTOM = 0
- Global Const SS_CELL_BUTTON_ALIGN_TOP = 1
- Global Const SS_CELL_BUTTON_ALIGN_LEFT = 2
- Global Const SS_CELL_BUTTON_ALIGN_RIGHT = 3
-
- 'date formats
- Global Const SS_CELL_DATE_FORMAT_DDMONYY = 0
- Global Const SS_CELL_DATE_FORMAT_DDMMYY = 1
- Global Const SS_CELL_DATE_FORMAT_MMDDYY = 2
- Global Const SS_CELL_DATE_FORMAT_YYMMDD = 3
-
- 'Static text vertical alignment
- Global Const SS_CELL_STATIC_V_ALIGN_BOTTOM = 0
- Global Const SS_CELL_STATIC_V_ALIGN_CENTER = 1
- Global Const SS_CELL_STATIC_V_ALIGN_TOP = 2
-
- 'Time
- Global Const SS_CELL_TIME_12_HOUR_CLOCK = 0
- Global Const SS_CELL_TIME_24_HOUR_CLOCK = 1
-
- 'Unit type
- Global Const SS_CELL_UNIT_NORMAL = 0
- Global Const SS_CELL_UNIT_VGA = 1
- Global Const SS_CELL_UNIT_TWIPS = 2
-
- 'horizontal align
- Global Const SS_CELL_H_ALIGN_LEFT = 0
- Global Const SS_CELL_H_ALIGN_RIGHT = 1
- Global Const SS_CELL_H_ALIGN_CENTER = 2
-
- 'EditmodeAction
- Global Const SS_CELL_EDITMODE_EXIT_NONE = 0
- Global Const SS_CELL_EDITMODE_EXIT_UP = 1
- Global Const SS_CELL_EDITMODE_EXIT_DOWN = 2
- Global Const SS_CELL_EDITMODE_EXIT_LEFT = 3
- Global Const SS_CELL_EDITMODE_EXIT_RIGHT = 4
- Global Const SS_CELL_EDITMODE_EXIT_NEXT = 5
- Global Const SS_CELL_EDITMODE_EXIT_PREVIOUS = 6
-
- Sub er_fpGridAdvance(grid As Control, AdvanceNext As Integer)
- Dim lRow As Long
-
- ' If trying to go backward from row 1, do nothing
- If AdvanceNext = False Then Exit Sub
-
- lRow = grid.ActiveRow
- If er_fpIsRowBlank(grid, lRow) Then
- Beep
- Exit Sub
- End If
-
- If AdvanceNext = True Then
- 'grid.VirtualMaxRows = grid.VirtualMaxRows + 1
- grid.Row = grid.ActiveRow + 1
- grid.Col = 1
- grid.Action = SS_ACTION_INSERT_ROW
- grid.Action = SS_ACTION_ACTIVE_CELL
- grid.EditMode = True
- Beep
- End If
-
- End Sub
-
- Sub er_fpGridDelete(ds As Data, grid As Control)
- grid.Row = grid.ActiveRow
- grid.Col = grid.ActiveCol
- On Error GoTo GridDelete_Handler
- ds.Recordset.Delete
- grid.Action = SS_ACTION_ACTIVE_CELL
- grid.SetFocus
- Exit Sub
-
- GridDelete_Handler:
- If Err = 3197 Then
- ' Error is "data has changed, operation stopped"
- 'ds.Recordset.Update
- Resume
- End If
-
- MsgBox "Error:" & Str(Err) & " - " & Error(Err)
- Resume Next
-
- End Sub
-
- Function er_fpIsRowBlank(grid As Control, lRow As Long) As Integer
- Dim lCol As Long
- Dim vValue As Variant
- Dim iDummy As Integer
-
- For lCol = 1 To grid.MaxCols
- iDummy = fpGetText(grid, lCol, lRow, vValue)
- If vValue <> "" Then
- er_fpIsRowBlank = False
- Exit Function
- End If
- Next lCol
- er_fpIsRowBlank = True
-
- End Function
-
- ' <<UNDER CONSTRUCTION, DO NOT USE!!>>
- Sub er_fpPopulateCombo(grid As Control, sItem() As String, iCount As Integer, iWidth As Integer)
- Dim sList As String
- Dim sNewItem As String
- Dim i As Integer
-
- For i = 1 To iCount
- 'Add delimiter between combo items
- If i > 1 Then
- sNewItem = Chr(9)
- Else
- sNewItem = ""
- End If
-
- 'Add item to list
- sNewItem = sNewItem & sItem(i)
- sNewItem = sNewItem & Space(iWidth - Len(sItem(i)))
- sList = sList & sNewItem
-
- Next i
-
- 'Populate combo with list
- grid.TypeComboBoxList = sList
-
- End Sub
-
- '-------------------------------------------------------
- ' Repopulates a grid based on the RecordSource property
- ' of the bound data control
- ' Params:
- ' ds: bound data control
- ' grid: grid control
- '-------------------------------------------------------
- Sub er_fpRefresh(ds As Data, grid As Control)
- 'grid.ReDraw = False
- ds.Refresh
- 'grid.ReDraw = True
- grid.EditModePermanent = False
- grid.EditMode = False
-
- ' Make sure that the current row is not past end of result set
- If grid.ActiveRow > ds.Recordset.RecordCount Then
- grid.Row = ds.Recordset.RecordCount
- If grid.Row < 1 Then grid.Row = 1
- grid.Action = SS_ACTION_ACTIVE_CELL
- End If
-
- 'grid.EditMode = True
- grid.EditModePermanent = True
-
- End Sub
-
- Sub er_fpShowCurrRow(grid As Control)
- grid.Col = -1
- grid.Row = -1
- grid.BackColor = RGB(255, 255, 255)
-
- grid.Row = grid.ActiveRow
- grid.BackColor = RGB(255, 255, 0)
-
- End Sub
-
- Sub er_fpUpdate(ds As Data, grid As Control)
- ' "Update" the current row by moving to a new row.
- Dim iErr As Integer
-
- iErr = SetCellDirtyFlag(grid, grid.ActiveCol, grid.ActiveRow, True)
- grid.EditModePermanent = False
- grid.EditMode = False
- ds.Recordset.Update
- grid.EditModePermanent = True
-
- End Sub
-
-